Component org.nuxeo.ecm.platform.routing.layouts
In bundle org.nuxeo.ecm.platform.routing.web
Requirements
Resolution Order
746
The resolution order represents the order in which this component has been resolved by the Nuxeo Runtime
framework.
You can influence this order by adding "require" tags in your component declaration, to make sure it is resolved after another component.
Contributions
- org.nuxeo.ecm.platform.routing.layouts--widgettypes
- org.nuxeo.ecm.platform.routing.layouts--widgets
- org.nuxeo.ecm.platform.routing.layouts--layouts
- org.nuxeo.ecm.platform.routing.layouts--actions
XML Source
<?xml version="1.0"?>
<component name="org.nuxeo.ecm.platform.routing.layouts">
<require>org.nuxeo.ecm.platform.routing.actions</require>
<extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
point="widgettypes">
<widgetType name="current_route_description">
<configuration>
<sinceVersion>5.6</sinceVersion>
<title>Description</title>
<description>
<p>This widget displays the name, description, author and
creation
date
of the current route started on the current
document.
</p>
</description>
<categories>
<category>routing</category>
</categories>
<supportedModes>
<mode>view</mode>
</supportedModes>
<!-- no configurable properties -->
</configuration>
<handler-class>
org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
</handler-class>
<property name="template">
/widgets/route/current_route_description_widget_template.xhtml
</property>
</widgetType>
<widgetType name="current_route_show_graph">
<configuration>
<sinceVersion>5.6</sinceVersion>
<title>Description</title>
<description>
<p>
This widget displays the graph of the current route in a
Fancybox
popup.
</p>
A field to map the id of the document representing
the workflow
instance is required.
</description>
<categories>
<category>routing</category>
</categories>
<supportedModes>
<mode>view</mode>
<fields>
<list>false</list>
<complex>false</complex>
<supportedTypes>
<type>string</type>
</supportedTypes>
</fields>
</supportedModes>
<!-- no configurable properties -->
</configuration>
<handler-class>
org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
</handler-class>
<property name="template">
/widgets/route/current_route_show_graph_widget_template.xhtml
</property>
</widgetType>
<widgetType name="current_route_abandon">
<configuration>
<sinceVersion>5.6</sinceVersion>
<title>Description</title>
<description>
<p>
This widget displays an 'Abandon' action to cancel the
current
route
started on the current document.
</p>
</description>
<categories>
<category>routing</category>
</categories>
<supportedModes>
<mode>view</mode>
</supportedModes>
<!-- no configurable properties -->
</configuration>
<handler-class>
org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
</handler-class>
<property name="template">
/widgets/route/current_route_abandon_widget_template.xhtml
</property>
</widgetType>
<widgetType name="current_route_user_tasks">
<configuration>
<sinceVersion>5.6</sinceVersion>
<title>Description</title>
<description>
<p>
This widget displays the user tasks of the current route on
the
current document. Duplicate of
"summary_current_document_single_tasks" widget.
</p>
</description>
<handlingLabels>true</handlingLabels>
<categories>
<category>routing</category>
</categories>
<supportedModes>
<mode>view</mode>
</supportedModes>
<containingForm>true</containingForm>
<!-- no configurable properties -->
</configuration>
<handler-class>
org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
</handler-class>
<property name="template">
/widgets/summary/single_tasks_widget_template.xhtml
</property>
</widgetType>
<widgetType name="current_route_open_tasks">
<configuration>
<sinceVersion>5.6</sinceVersion>
<title>Description</title>
<description>
<p>
This widget displays all the open tasks of the current
route
on the
current document.
</p>
</description>
<handlingLabels>true</handlingLabels>
<categories>
<category>routing</category>
</categories>
<supportedModes>
<mode>view</mode>
</supportedModes>
<!-- no configurable properties -->
</configuration>
<handler-class>
org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
</handler-class>
<property name="template">
/widgets/route/current_route_open_tasks_widget_template.xhtml
</property>
</widgetType>
<widgetType name="task_workflow_title">
<configuration>
<title>
Task workflow title
</title>
<description>
<p>
Displays the name of the worklow for a task, inside a h1 tag.
</p>
Two fields are required:
<ul>
<li>A field to map the task</li>
<li>A field to map the task name</li>
</ul>
</description>
<sinceVersion>5.8</sinceVersion>
<categories>
<category>routing</category>
</categories>
<supportedModes>
<mode>view</mode>
</supportedModes>
<fields>
<list>false</list>
<complex>false</complex>
<supportedTypes>
<type>string</type>
</supportedTypes>
</fields>
</configuration>
<handler-class>
org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
</handler-class>
<property name="template">
/widgets/task/task_workflow_title_widget_template.xhtml
</property>
</widgetType>
<widgetType name="task_workflow_name">
<configuration>
<title>
Task workflow name
</title>
<description>
<p>
Displays the name of the worklow for a task.
</p>
Two fields are required:
<ul>
<li>A field to map the task</li>
<li>A field to map the task name</li>
</ul>
</description>
<sinceVersion>5.8</sinceVersion>
<categories>
<category>routing</category>
</categories>
<supportedModes>
<mode>view</mode>
</supportedModes>
<fields>
<list>false</list>
<complex>false</complex>
<supportedTypes>
<type>string</type>
</supportedTypes>
</fields>
</configuration>
<handler-class>
org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
</handler-class>
<property name="template">
/widgets/task/task_workflow_name_widget_template.xhtml
</property>
</widgetType>
<widgetType name="task_layout_with_actions">
<configuration>
<title>Listing the layout configured on Studio for the task or
default
actions for non routing tasks
</title>
<documentation>
Two fields are required:
<ul>
<li>A field to map the task</li>
<li>A field to map the task id</li>
</ul>
</documentation>
<sinceVersion>5.8</sinceVersion>
<categories>
<category>routing</category>
</categories>
<supportedModes>
<mode>view</mode>
</supportedModes>
<fields>
<list>false</list>
<complex>false</complex>
<supportedTypes>
<type>string</type>
</supportedTypes>
</fields>
</configuration>
<handler-class>
org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
</handler-class>
<property name="template">
/widgets/task/task_layout_with_actions_widget.xhtml
</property>
</widgetType>
</extension>
<extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
point="widgets">
<widget name="current_route_description" type="current_route_description" />
<widget name="current_route_show_graph" type="current_route_show_graph">
<fields>
<field>#{layoutValue.document.id}
</field>
</fields>
<handlingLabels>true</handlingLabels>
</widget>
<widget name="current_route_abandon" type="current_route_abandon">
<controls mode="any">
<control name="requireSurroundingForm">true</control>
</controls>
</widget>
<widget name="current_route_user_tasks" type="current_route_user_tasks">
<labels>
<label mode="any"></label>
</labels>
<properties widgetMode="any">
<property name="displayTaskAdditionalActions">true</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
<control name="requireSurroundingForm">false</control>
</controls>
</widget>
<widget name="current_route_open_tasks" type="current_route_open_tasks">
<labels>
<label mode="any"></label>
</labels>
<controls mode="any">
<control name="handleLabels">true</control>
<control name="requireSurroundingForm">true</control>
</controls>
</widget>
<widget name="current_route_previous_tasks" type="contentViewWithForms">
<labels>
<label mode="any"></label>
</labels>
<translated>false</translated>
<properties widgetMode="any">
<property name="contentViewName">route_past_steps</property>
</properties>
</widget>
<widget name="current_route_panel_top" type="documentActions">
<labels>
<label mode="any"></label>
</labels>
<properties widgetMode="any">
<property name="category">CURRENT_ROUTE_PANEL_TOP</property>
<property name="styleClass">summaryActions</property>
<property name="actionContextDocument">#{layout.properties.currentDocumentForRoute}</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
</widget>
<widget name="current_route_panel_left" type="container">
<properties widgetMode="any">
<property name="hideSubLabels">true</property>
<property name="display">block_top</property>
<property name="ajaxPanelId">currentRoutePanelLeft</property>
</properties>
<subWidgetRefs>
<widget>current_route_tasks</widget>
</subWidgetRefs>
</widget>
<widget name="current_route_tasks" type="documentActions">
<labels>
<label mode="any"></label>
</labels>
<properties widgetMode="any">
<property name="category">CURRENT_ROUTE_PANEL_LEFT</property>
<property name="styleClass">summaryActions</property>
<property name="actionContextDocument">#{layout.properties.currentDocumentForRoute}</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
</widget>
<widget name="current_route_panel_right" type="documentActions">
<labels>
<label mode="any"></label>
</labels>
<properties widgetMode="any">
<property name="category">CURRENT_ROUTE_PANEL_RIGHT</property>
<property name="styleClass">summaryActions</property>
<property name="actionContextDocument">#{layout.properties.currentDocumentForRoute}</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
</widget>
<widget name="current_route_panel_bottom" type="documentActions">
<labels>
<label mode="any"></label>
</labels>
<properties widgetMode="any">
<property name="category">CURRENT_ROUTE_PANEL_BOTTOM</property>
<property name="styleClass">summaryActions</property>
<property name="actionContextDocument">#{layout.properties.currentDocumentForRoute}</property>
</properties>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
</widget>
<!-- for previous tasks layout -->
<widget name="task_title" type="text">
<labels>
<label mode="any">label.workflow.task.Name</label>
</labels>
<translated>true</translated>
<fields>
<field>data.task.name</field>
</fields>
<properties mode="any">
<property name="localize">true</property>
</properties>
</widget>
<widget name="task_directive" type="text">
<labels>
<label mode="any">label.workflow.task.directive</label>
</labels>
<translated>true</translated>
<fields>
<field>data.task.directive</field>
</fields>
<properties mode="any">
<property name="localize">true</property>
</properties>
</widget>
<widget name="task_assignee" type="multiplePrefixedUsersSuggestion">
<labels>
<label mode="any">label.document.route.content.header.actors
</label>
</labels>
<translated>true</translated>
<fields>
<field>data.task.actors</field>
</fields>
</widget>
<widget name="task_comments" type="list">
<labels>
<label mode="any">label.content.header.comments</label>
</labels>
<translated>true</translated>
<fields>
<field>data.task.taskComments</field>
</fields>
<properties mode="any">
<property name="localize">true</property>
<property name="hideSubLabels">true</property>
</properties>
<subWidgets>
<widget name="comment" type="text">
<fields>
<field>text</field>
</fields>
</widget>
</subWidgets>
</widget>
<widget name="task_start_date" type="datetime">
<labels>
<label mode="any">label.workflow.task.startdate</label>
</labels>
<translated>true</translated>
<fields>
<field>data.dublincore.created</field>
</fields>
</widget>
<widget name="task_due_date" type="datetime">
<labels>
<label mode="any">label.workflow.task.duedate</label>
</labels>
<translated>true</translated>
<fields>
<field>data.task.dueDate</field>
</fields>
</widget>
<!-- for "task_layout" @since 5.8, apply to an object Task -->
<widget name="task_workflow_title" type="task_workflow_title">
<labels>
<label mode="any">label.route.task.workflowStep</label>
</labels>
<translated>true</translated>
<fields>
<field></field>
<field>name</field>
</fields>
</widget>
<widget name="task_workflow_name" type="task_workflow_name">
<labels>
<label mode="any">label.route.task.workflowStep</label>
</labels>
<translated>true</translated>
<fields>
<field></field>
<field>name</field>
</fields>
</widget>
<widget name="task_show_workflow_graph" type="current_route_show_graph">
<labels>
<label mode="any"></label>
</labels>
<fields>
<field>processId</field>
</fields>
</widget>
<widget name="task_actors" type="multiplePrefixedUsersSuggestion">
<labels>
<label mode="any">label.document.route.content.header.actors
</label>
</labels>
<translated>true</translated>
<fields>
<field>actors</field>
</fields>
</widget>
<widget name="task_duedate" type="datetime">
<labels>
<label mode="any">label.workflow.task.duedate</label>
</labels>
<translated>true</translated>
<fields>
<field>dueDate</field>
</fields>
</widget>
<widget name="task_simple_directive" type="text">
<labels>
<label mode="any">label.workflow.task.directive</label>
</labels>
<translated>true</translated>
<fields>
<field>directive</field>
</fields>
<properties mode="any">
<property name="localize">true</property>
</properties>
</widget>
<widget name="task_delegated_users" type="multiplePrefixedUsersSuggestion">
<labels>
<label mode="any">label.route.task.delegated.to</label>
</labels>
<translated>true</translated>
<fields>
<field>delegatedActors</field>
</fields>
</widget>
<widget name="task_layout_with_actions" type="task_layout_with_actions">
<labels>
<label mode="any"></label>
</labels>
<fields>
<field></field>
<field>id</field>
</fields>
</widget>
<widget name="reassign_task_widget" type="action">
<properties widgetMode="any">
<property name="action">#{webActions.getActionForDocument("reassignTask",null,
false)}
</property>
<property name="styleClass">floatL</property>
<property name="actionStyleClass">button</property>
<property name="actionsDisplay">buttons</property>
<property name="addForm">true</property>
<property name="useAjaxForm">true</property>
<property name="ignoreTemplateProperty">true</property>
</properties>
<widgetModes>
<mode value="any">#{layoutValue.isCanBeReassigned()?'edit':'hidden'}
</mode>
</widgetModes>
</widget>
<widget name="delegate_task_widget" type="action">
<properties widgetMode="any">
<property name="action">#{webActions.getActionForDocument("delegateTask",null,
false)}
</property>
<property name="styleClass">floatL</property>
<property name="actionStyleClass">button</property>
<property name="actionsDisplay">buttons</property>
<property name="addForm">true</property>
<property name="useAjaxForm">true</property>
<property name="ignoreTemplateProperty">true</property>
</properties>
</widget>
</extension>
<extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
point="layouts">
<layout name="current_route_layout">
<templates>
<template mode="any">
/layouts/layout_grid_template.xhtml
</template>
</templates>
<rows>
<row>
<properties mode="any">
<property name="nxl_gridStyleClass_0">gridStyle12</property>
<property name="nxl_gridStyleClass_1">gridStyle7</property>
<property name="nxl_gridStyleClass_2">gridStyle5</property>
<property name="nxl_gridStyleClass_3">gridStyle12</property>
</properties>
<widget>current_route_panel_top</widget>
<widget>current_route_panel_left</widget>
<widget>current_route_panel_right</widget>
<widget>current_route_panel_bottom</widget>
</row>
</rows>
</layout>
<!-- Route tasks content view layout -->
<layout name="route_content_view_layout">
<templates>
<template mode="any">
/layouts/layout_listing_ajax_template.xhtml
</template>
</templates>
<properties mode="any">
<property name="showListingHeader">true</property>
<property name="showRowEvenOddClass">true</property>
</properties>
<columns>
<column>
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
</properties>
<widget>task_title</widget>
</column>
<column>
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
</properties>
<widget>task_assignee</widget>
</column>
<column>
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
</properties>
<widget>task_directive</widget>
</column>
<column>
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
</properties>
<widget>task_comments</widget>
</column>
<column>
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
</properties>
<widget>task_start_date</widget>
</column>
<column>
<properties mode="any">
<property name="useFirstWidgetLabelAsColumnHeader">true</property>
</properties>
<widget>task_due_date</widget>
</column>
</columns>
</layout>
<!-- Past routes layout -->
<layout name="previousRoutesLayout">
<templates>
<template mode="any">/layouts/layout_default_template.xhtml
</template>
</templates>
<rows>
<row>
<widget>previousRoutesContentView</widget>
</row>
</rows>
<widget name="previousRoutesContentView" type="contentViewWithForms">
<labels>
<label mode="any"></label>
</labels>
<translated>false</translated>
<properties widgetMode="any">
<property name="contentViewName">previous_routes</property>
<property name="foldable">false</property>
</properties>
</widget>
</layout>
<layout name="graphViewLayout">
<templates>
<template mode="any">/layouts/layout_default_template.xhtml
</template>
</templates>
<rows>
<row>
<widget>current_route_show_graph</widget>
</row>
</rows>
</layout>
<layout name="task_additional_actions_layout">
<templates>
<template mode="any">
/layouts/layout_div_template.xhtml
</template>
</templates>
<rows>
<row>
<widget>reassign_task_widget</widget>
<widget>delegate_task_widget</widget>
</row>
</rows>
</layout>
<layout name="task_layout">
<templates>
<template mode="any">
/layouts/layout_default_template.xhtml
</template>
</templates>
<rows>
<row>
<widget>task_workflow_name</widget>
</row>
<row>
<widget>task_actors</widget>
</row>
<row>
<widget>task_delegated_users</widget>
</row>
<row>
<widget>task_duedate</widget>
</row>
<row>
<widget>task_simple_directive</widget>
</row>
<row>
<widget>container_for_task_layout_with_actions</widget>
</row>
</rows>
<widget name="container_for_task_layout_with_actions" type="container">
<labels>
<label mode="any"></label>
</labels>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
<properties mode="any">
<property name="hideSubLabels">true</property>
</properties>
<subWidgetRefs>
<widget>task_layout_with_actions</widget>
</subWidgetRefs>
</widget>
</layout>
<layout name="workflowTaskReassignmentLayout">
<!--applies to a TaskInfo -->
<templates>
<template mode="any">/layouts/layout_default_template.xhtml
</template>
</templates>
<rows>
<row>
<widget>task_reassignment_actors</widget>
</row>
<row>
<widget>task_reassignment_comment</widget>
</row>
</rows>
<widget name="task_reassignment_actors" type="multipleUsersSuggestion">
<labels>
<label mode="any">label.workflow.task.actors</label>
</labels>
<translated>true</translated>
<fields>
<field>actors</field>
</fields>
<properties mode="any">
<property name="required">true</property>
<property name="prefixed">true</property>
</properties>
</widget>
<widget name="task_reassignment_comment" type="textarea">
<labels>
<label mode="any">label.workflow.task.comment</label>
</labels>
<translated>true</translated>
<fields>
<field>comment</field>
</fields>
</widget>
</layout>
<layout name="userOpenTasksLayout">
<templates>
<template mode="any">
/layouts/layout_div_template.xhtml
</template>
</templates>
<rows>
<row>
<widget>current_user_open_tasks</widget>
</row>
</rows>
<widget name="current_user_open_tasks" type="contentViewWithForms">
<labels>
<label mode="any"></label>
</labels>
<translated>false</translated>
<controls mode="any">
<control name="handleLabels">true</control>
</controls>
<properties widgetMode="any">
<property name="contentViewName">user_open_tasks</property>
</properties>
</widget>
</layout>
</extension>
<extension target="org.nuxeo.ecm.platform.actions.ActionService"
point="actions">
<action id="current_route_user_tasks" type="widget" order="100">
<category>CURRENT_ROUTE_PANEL_LEFT</category>
<properties>
<property name="widgetName">current_route_user_tasks</property>
</properties>
</action>
<action id="current_route_open_tasks" type="widget" order="200">
<category>CURRENT_ROUTE_PANEL_LEFT</category>
<properties>
<property name="widgetName">current_route_open_tasks</property>
</properties>
</action>
<action id="current_route_previous_tasks" type="widget" order="300">
<category>CURRENT_ROUTE_PANEL_LEFT</category>
<properties>
<property name="widgetName">current_route_previous_tasks</property>
</properties>
</action>
<action id="current_route_description" type="widget" order="100">
<category>CURRENT_ROUTE_PANEL_RIGHT</category>
<properties>
<property name="widgetName">current_route_description</property>
</properties>
</action>
<action id="current_route_show_graph" type="widget" order="200">
<category>CURRENT_ROUTE_PANEL_RIGHT</category>
<properties>
<property name="widgetName">current_route_show_graph</property>
</properties>
</action>
<action id="current_route_abandon" type="widget" order="300">
<category>CURRENT_ROUTE_PANEL_RIGHT</category>
<properties>
<property name="widgetName">current_route_abandon</property>
</properties>
<filter-id>currentUserIsWorkflowInitatior</filter-id>
</action>
</extension>
</component>